package com.soup.lab.third.token;

/**
 * token属性
 */
public class TokenProperty {
    /**
     * 默认Token配置
     */
    private static final TokenProperty DEFAULT = new TokenProperty(true, false, 0);
    /**
     * 是否已启用
     * 有些平台可以控制是否开启token验证，该方法用于支持配置变更（暂时没有使用）
     */
    private final boolean enabled;
    /**
     * 是否独占，默认一个账号允许存在多个有效token
     * 如果平台一个账号只允许有一个有效的token，那么就是独占，该属性应设置为true
     */
    private final boolean exclusive;
    /**
     * 固定的过期时间
     * 如果token返回没有过期的时长，那么应根据实际的过期时间配置该参数，单位秒
     * 0-表示未设置
     *
     */
    private final Integer expire;

    public TokenProperty(boolean enabled, boolean exclusive) {
        this(enabled, exclusive, 0);
    }

    public TokenProperty(boolean enabled, boolean exclusive, Integer expire) {
        this.enabled = enabled;
        this.exclusive = exclusive;
        this.expire = expire;
    }

    public boolean isEnabled() {
        return enabled;
    }

    public boolean isExclusive() {
        return exclusive;
    }

    public Integer getExpire() {
        return expire;
    }

    public static TokenProperty getDefault() {
        return DEFAULT;
    }
}
